package com.cg.design.graphicdesignpattern.template;

/**
 * 抽象类
 *
 * @program: LeetCode->AbstractDisplay
 * @description: 抽象类
 * @author: cg
 * @create: 2022-03-18 21:17
 **/
public abstract class AbstractDisplay {

    /**
     * 抽象方法open
     */
    public abstract void open();

    /**
     * 抽象方法print
     */
    public abstract void print();

    /**
     * 抽象方法close
     */
    public abstract void close();

    /**
     * 调用抽象方法的模板方法
     * final意思是模板方法不允许子类重写
     */
    public final void display() {
        open();
        for (int i = 0; i < 5; i++) {
            print();
        }
        close();
    }

}
